import axios from 'axios'
import store from '@/store'
import JSONBig from 'json-bigint'

const json = '{ "art_id": 1245953273786007552 }'
console.log(JSONBig.parse(json))
console.log(JSON.parse(json))

console.log(JSON.stringify(JSONBig.parse(json)))
console.log(JSONBig.stringify(JSONBig.parse(json)))

// 我们的项目接口如果有多套

// axios 具备的功能 通过axios.create()创建出来的实例也全都具备
// axios.defaults.baseURL = ''
const request = axios.create({
  baseURL: 'http://toutiao-app.itheima.net/',
  transformResponse: [function (data) {
    // 获取到的是后台返回的原始数据
    try {
      return JSONBig.parse(data)
    } catch (err) {
      return data
    }
  }]
})

// 添加请求拦截器 配置 请求头的统一配置
request.interceptors.request.use(config => {
  console.log(config)
  if (config.url === '/v1_0/authorizations' && config.method === 'put') {
    // token过期 利用refresh_token获取新的token
    config.headers.Authorization = 'Bearer ' + store.state.user.refresh_token
  } else if (store.state.user && store.state.user.token) {
    config.headers.Authorization = 'Bearer ' + store.state.user.token
  }
  return config
})

// 添加响应拦截器
request.interceptors.response.use(res => {
  return res.data
})

export default request
